package com.ngmaster.apiserver.redis;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Redis的配置
 *
 */
@Configuration
public class RedisConfig {
	/**
	 * Redis的主机地址
	 */
	@Value("${jedis.pool.host}")
	private String host;
	
	/**
	 * Redis的端口
	 */
	@Value("${jedis.pool.port}")
	private int port;
	
	/**
	 * 密码
	 */
	@Value("${jedis.pool.password}")
	private String password;
	
	/**
	 * 最大的连接
	 */
	@Value("${jedis.pool.maxTotal}")
	private int maxTotal;
	
	/**
	 * 最大空闲时间
	 */
	@Value("${jedis.pool.maxIdle}")
	private int maxIdle;
	
	/**
	 * 最大等待时间
	 */
	@Value("${jedis.pool.maxWaitMillis}")
	private int maxWaitMillis;
	
	/**
	 * 数据库
	 */
	@Value("${jedis.pool.database}")
	private int database;
	
	/**
	 * 超时
	 */
	@Value("${jedis.pool.timeout}")
	private int timeout;
	
	/**
	 * 生成池子
	 * @return
	 */
	@Bean
	public JedisPool jedisPool()
	{
		JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxTotal(maxTotal);
		config.setMaxIdle(maxIdle);
		config.setMaxWaitMillis(maxWaitMillis);
		
		return new JedisPool(config, host, port, timeout, password, database);
	}
}
